package milkproduction.service;

import java.util.HashMap;

import milkproduction.dao.ReleaseDAO;
import milkproduction.to.OrderTO;

public class ReleaseService {
	private ReleaseDAO rdao;
	public ReleaseService(ReleaseDAO rdao){
		this.rdao = rdao;
	}

	// 페이지 로딩시 DB에서 정보를 가져옴 
	public HashMap checkCurrentState() throws Exception{
		// DB에서 받아온 정보(총완제품갯수, 오늘완제품갯수)를 저장할 map
		HashMap map = new HashMap();

		// 총완제품 갯수 가져오기
		int totalProductCnt = rdao.selectFinishedProductCount();

		// 오늘 주문 조회하기
		OrderTO oto = rdao.selectOrderByTodayDate();

		// map에 정보 저장
		map.put("totalCnt", totalProductCnt);
		map.put("oto", oto);

		return map;
	}

	// 출고시킬때 사용하는 서비스 
	public boolean releaseFinishedProduct(int orderNo) throws Exception{
		// 현재 출고번호 조회
		int curReleaseNo = rdao.selectReleaseNoCurrval();
		System.out.println("현재출고번호" + curReleaseNo);
		
		// 출고정보를 DB에 넣음
		int insertResult = rdao.insertRelease(orderNo);
		System.out.println("출고갯수" + insertResult);

		int orderStateUpdateCnt=0;
		int finishUpdateCnt=0;
		// 출고정보가 제대로 넣어지면 
		if(insertResult>0){
			// 완제품에 출고번호를 넣어줌(출고되었다는 상태)
			finishUpdateCnt = rdao.updateFinishProductionReleaseNo(curReleaseNo);
			System.out.println("완제품출고상태"+finishUpdateCnt);
			// 주문의 납품 여부를 true로! 
			orderStateUpdateCnt = rdao.updateDeliveryState(orderNo);
			System.out.println("주문납품여부"+orderStateUpdateCnt);
		}

		if((insertResult>0)&&(finishUpdateCnt>0)&&(orderStateUpdateCnt>0)){
			return true;
		}else{
			return false;
		}

	}
}
